<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //call、apply 和 bind方法的使用：
        // 作用：将指定的函数（方法）交由其他对象使用

        function eat(n){
            console.log(this.name, "爱吃"+n+"！");
        }

        var ob1 = {name:"王建国"};
        var ob2 = {name:"王翠花"};

        // 将eat函数分别交由ob1和ob2使用
        eat.call(ob1,"棒棒糖");  
        eat.apply(ob2,["酸菜鱼"]);

        // call 和 apply 的区别是在参数的传递


        //2. bind的方法使用。
        // 使用bind方法,将eat函数临时绑定给ob1对象，并返回一个新方法
        var dd = eat.bind(ob1,'卤煮');
        dd(); // 执行此方法

        // 也可以如下绑定执行
        eat.bind(ob2)('关东卤煮');

    </script>
</body>
</html>